package annotation.override01;

public class OverrideTest {
    public static void main(String[] args) {
        
    }
}

class Father {
    public void fly() {
        System.out.println("Father fly");
    }
}

class Children extends Father {
    //@Override 注解用在方法上，表示子类重写了父类的方法
    //如果没有写@Override 仍然是重写了父类的方法
    //如果写了@Override 则编译器会检测是否重写，如果没有重写，则编译不通过
    /**
     * @Target(ElementType.NETHOD) 这行表示这个注解只能修饰方法
     * @Retention(RetentionPolicy.SOURCE)
     * public @interface Override {
     * }
     * 
     * @Override 源码中含有 @interface
     * @interface 不是interface，而是注解类，是jdk1.5后加入的
     * @Target 是修饰注解的注解，称为元注解
    */
    @Override
    public void fly() {
        System.out.println("Children fly");
    }
}